#pragma once

#include <sstream>
#include <vector>

namespace Utility{
    inline std::string NumToString(int i){
        std::stringstream out;
        out << i;
        return out.str();
    }
    inline std::string NumToString(float f){
        std::stringstream out;
        out << f;
        return out.str();
    }
    inline std::string NumToString(double d){
        std::stringstream out;
        out << d;
        return out.str();
    }

    template<typename T>
    std::vector<T*> UniqueToRaw(const std::vector<std::unique_ptr<T>> &vec){
        std::vector<T*> raws;
        for(const auto &el:vec){
            raws.push_back(el.get());
        }
        return raws;
    }
}
